A cache stores a collection of data in a fast memory for faster access by duplicating original values stored elsewhere. In a parallel computing environment, for example, disk storage arrays might use several gigabytes of random access memory (RAM) as a cache. Historically, an inclusive cache management policy was employed whereby the same data blocks were duplicated at both the client level and the array level of the cache hierarchy. J. Wilkes and T. Wong, “My Cache or Yours, Making Storage More Exclusive,” USENIX Annual Technical Conference, 161-175 (USENIX 2002), recognized that when an inclusive cache management policy was employed, the aggregate cache was effectively only as large as the larger of the client cache and the array cache, rather than the sum of the two caches. Wilkes and Wong proposed an exclusive cache management policy whereby a given data block is cached in a client cache or a disk array cache, but not both at the same time.
Nonetheless, a need remains for improved multi-tiered caching techniques for parallel computing environments.